The present invention relates to engine control systems and, more particularly, to a microprocessor-based engine control system having queued control data flow between the CPU and peripheral devices.
Current microprocessor-based engine control systems must communicate with a number of peripheral data devices. In operation, data is sent to various parts of the control system through these peripheral devices. In addition, data is received and processed by the control system through these same devices. Examples of peripheral data devices include: serial peripheral interfaces (SPI), serial communications interfaces (SCI), analog-to-digital converters (A/D), and controller area networks (CAN). To facilitate data transfer among and between these devices, and to minimize overhead on the system CPU, the data is organized into lists or queues.
Present engine control system designs require that each port interface contain its own queue and queue controller. This results in an inflexible system architecture in terms of queue size and port interface design. Thus, it is difficult to modify the queue structure of the overall system in terms of the number of queues per device, size of the queue, and/or the type of queue trigger, for example.
It is an object of the invention to provide an improved queued port data controller for microprocessor-based engine control systems.
The present invention overcomes the drawbacks of these prior engine control systems through the provision of a queue controller, including a unique state machine in combination with a common data and command-word random access memory (RAM) to provide flexible control over a large number and type of port interface devices. Specifically, a data queue control submodule supporting a host processor and at least one peripheral device is provided. The submodule includes a memory unit with a first memory portion for storing queue commands associated with each peripheral device and a second memory portion for storing peripheral device data. A queue control unit is also included in the submodule for controlling the flow of data between the peripheral devices and the host processor in accordance with the queue control commands. A port interface connects the queue control unit and the peripheral devices in response to a trigger event. The submodule further includes an event controller in communication with the host processor and the port interface for generating event triggers in response to data demands of either the host processor or the other peripheral devices. The present invention is advantageous in that it simplifies the design of each port interface and provides improved flexibility in the queue structure of the overall control system.
Another advantage of the present invention is that the size of the integrated circuit area, i.e., the die size, required for the disclosed queue controller is less than the sum of the die size for the individual queue controllers previously employed.
A further advantage is that the disclosed state machine controls the flow of data to and from the RAM and the external devices without the need for CPU intervention.
Other object and advantages of the invention will become apparent upon reading the following detailed description and appended claims, and upon reference to the accompanying drawings.